package org.dromara.iot.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.iot.domain.IotUpkeepInfo;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 电梯保养信息视图对象 iot_upkeep_info
 *
 * @author lsl
 * @date 2024-06-14
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = IotUpkeepInfo.class)
public class IotUpkeepInfoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 保养ID
     */
    @ExcelProperty(value = "保养ID")
    private Long upkeepId;

    /**
     * 关联电梯ID
     */
    @ExcelProperty(value = "关联电梯ID")
    private Long elevatorId;

    /**
     * 关联模板ID
     */
    @ExcelProperty(value = "关联模板ID")
    private Long templateId;

    /**
     * 保养单号
     */
    @ExcelProperty(value = "保养单号")
    private String upkeepCode;

    /**
     * 电梯名称
     */
    @ExcelProperty(value = "电梯名称")
    private String elevatorName;

    /**
     * 电梯识别码
     */
    @ExcelProperty(value = "电梯识别码")
    private String identifyCode;

    /**
     * 使用单位
     */
    @ExcelProperty(value = "使用单位")
    private String useUnit;

    /**
     * 维保单位
     */
    @ExcelProperty(value = "维保单位")
    private String maintenanceUnit;

    /**
     * 保养类型
     */
    @ExcelProperty(value = "保养类型")
    private String upkeepType;

    /**
     * 保障状态(1.正常，2.超期)
     */
    @ExcelProperty(value = "保障状态(1.正常，2.超期)")
    private String upkeepState;

    /**
     * 维保人
     */
    @ExcelProperty(value = "维保人")
    private String applicant;

    /**
     * 截止时间
     */
    @ExcelProperty(value = "截止时间")
    private Date overTime;

    /**
     * 开始时间
     */
    @ExcelProperty(value = "开始时间")
    private Date startTime;

    /**
     * 保养时长
     */
    @ExcelProperty(value = "保养时长")
    private String upkeepDate;

    /**
     * 保养位置经度
     */
    @ExcelProperty(value = "保养位置经度")
    private String longitude;

    /**
     * 保养位置纬度
     */
    @ExcelProperty(value = "保养位置纬度")
    private String latitude;

    /**
     * 机房图片
     */
    @ExcelProperty(value = "机房图片")
    private String roomImg;

    /**
     * 机房备注
     */
    @ExcelProperty(value = "机房备注")
    private String roomRemark;

    /**
     * 层站图片
     */
    @ExcelProperty(value = "层站图片")
    private String floorImg;

    /**
     * 层站备注
     */
    @ExcelProperty(value = "层站备注")
    private String floorRemark;

    /**
     * 轿厢图片
     */
    @ExcelProperty(value = "轿厢图片")
    private String capsulesImg;

    /**
     * 轿厢备注
     */
    @ExcelProperty(value = "轿厢备注")
    private String capsulesRemark;

    /**
     * 井道图片
     */
    @ExcelProperty(value = "井道图片")
    private String shaftImg;

    /**
     * 井道备注
     */
    @ExcelProperty(value = "井道备注")
    private String shaftRemark;

    /**
     * 提交人签名
     */
    @ExcelProperty(value = "提交人签名")
    private String referUserSign;

    /**
     * 审核人签名
     */
    @ExcelProperty(value = "审核人签名")
    private String auditUserSign;

    /**
     * 提交人姓名
     */
    @ExcelProperty(value = "提交人姓名")
    private String referUser;

    /**
     * 提交时间
     */
    @ExcelProperty(value = "提交时间")
    private String referTime;

    /**
     * 审核人姓名
     */
    @ExcelProperty(value = "审核人姓名")
    private String auditUser;

    /**
     * 审核时间
     */
    @ExcelProperty(value = "审核时间")
    private String auditTime;

    /**
     * 提交人头像
     */
    @ExcelProperty(value = "提交人头像")
    @Translation(type = TransConstant.OSS_ID_TO_URL)
    private Long avatar;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    private List<IotUpkeepProjectRecordVo> upkeepProjectRecordVoList;

    private List<IotUpkeepRecordVo> upkeepRecordVoList;
    
    private IotElevatorVo elevator;
}
